package com.jie.other.aidl

import android.os.Parcel
import android.os.Parcelable

data class Person(
    var age: Int? = 0,
    var name: String? = "",
): Parcelable {

    constructor(parcel: Parcel) : this(
        parcel.readValue(Int::class.java.classLoader) as? Int,
        parcel.readString()
    ) {
    }

    /**
     * 注意out/inout要新增该方法，不然编译报错
      */
    fun readFromParcel(parcel: Parcel){
        this.age = parcel.readValue(Int::class.java.classLoader) as? Int
        this.name = parcel.readString()
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeValue(age)
        parcel.writeString(name)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<Person> {
        override fun createFromParcel(parcel: Parcel): Person {
            return Person(parcel)
        }

        override fun newArray(size: Int): Array<Person?> {
            return arrayOfNulls(size)
        }
    }


}
